package com.tianji.api.client.promotion.fallback;

import com.tianji.api.client.promotion.PromotionClient;
import com.tianji.api.dto.promotion.CouponDiscountDTO;
import com.tianji.api.dto.trade.OrderCouponDTO;
import com.tianji.api.dto.trade.OrderCourseDTO;
import com.tianji.common.utils.CollUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FallbackFactory;

import java.util.List;

@Slf4j
public class PromotionClientFallback implements FallbackFactory<PromotionClient> {

    @Override
    public PromotionClient create(Throwable cause) {
        log.error("查询促销服务异常:{}", cause);
        return new PromotionClient() {

            @Override
            public List<CouponDiscountDTO> findDiscountSolution(List<OrderCourseDTO> courses) {
                return CollUtils.emptyList();
            }

            @Override
            public CouponDiscountDTO getDiscountDetail(OrderCouponDTO orderCouponDTO) {
                return null;
            }

            /**
             * 优惠券核销
             *
             * @param userCouponIds
             */
            @Override
            public void useUserCoupon(List<Long> userCouponIds) {
            }
        };
    }
}
